package com.sunwayworld.baseline.framework.deviceDocking.handler;

import com.sunwayworld.baseline.framework.deviceDocking.dto.MessageDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Observable;

/**
 *  仪器对接 通用消息通知类    --主题类
 */
@Component
public class MessageObservable extends Observable {

    @Autowired
    private List<DockingObserver> observerList;

    // 初始化自动注入所有观察者
    @PostConstruct
    private void init(){
        observerList.forEach(this::addObserver);
    }

    public void handle(MessageDTO s){
        setChanged();
        notifyObservers(s);  // 通知所有的观察者
    }

}
